package dt;/*

多态：同一个对象，在不同时刻表现出来的不同形态
eg:
猫 cat=new 猫();
动物 animals=new 猫();
毛在不同的时刻表现出了不同的形态，就是多态

多态的前提和体现
   有继承/实现关系
   有方法重写
   有父类引用指向子类对象
*/

import dt.Animal;
import dt.Cat;

public class AnimalDemo {
    public static void main(String[] args) {
        //父类引用指向子类对象
        Animal a = new Cat();

        //成员变量没有像方法一样重写  编译先看左边的类有没有这个成员变量，执行看左边
        System.out.println(a.age);

      /*  访问父类的age
        System.out.println(a.weight);*/

        //因为方法重写了 编译看左边，运行看右边方法重写后输出为子类的方法
        a.eat();

    /*    方法也是看左边有没有方法
        a.play();*/

    }
}
